/*
 * cono.h
 *
 *  Created on: 17/02/2013
 *      Author: alex
 */

#ifndef CONO_H_
#define CONO_H_

#include "RayTracer.h"

// Datos específicos de un Cono
typedef struct {
	long double X0, Y0, Z0;
	long double Xq, Yq, Zq;
	long double dA, dB;
	long double Back, Front;
	long double A,B,C; //Variables precalculadas para la intersección
} cono_t;


long double IntCono(long double Xe, long double Ye, long double Ze,
                        long double Xd, long double Yd, long double Zd,
                        long double X0, long double Y0, long double Z0,
                        long double Xq, long double Yq, long double Zq,
                        long double A, long double B, long double C,
                        long double Back, long double Front, long double dA, long double dB,
                        objeto_t *objeto);

long double* NormalCono(long double Xi, long double Yi, long double Zi,
						    long double X0, long double Y0, long double Z0,
						    long double Xq, long double Yq, long double Zq,
						 	long double dA, long double dB);

#endif /* CONO_H_ */
